prompt 门诊国家医保接口日志:【1101】人员基本信息获取_日志生成 create or replace procedure SP_SF_GJYBRZ_MZXXHQ( PYBJKID in varchar2 ,--[1]输入:医保接口ID PJKCJBM in varchar2 ,--[2]输入:接口场景编码 PBRID00 in number ,--[3]输入:BRID00 PGHID00 in number ,--[4]输入:GHID000 PGHH000 in varchar2 ,--[5]输入:GHH000 PCZY000 in number ,--[6]输入:操作员编码 PCZYXM0 in varchar2 ,--[7]输入:操作员姓名 PCZYKS0 in number ,--[8]输入:操作员科室 PQQCSID in varchar2 default '' ,--[9]输入:参数中间ID PINXML0 in varchar2 default '' ,--[10]输入:请求参数(XML) POTHER0 in varchar2 default '' ,--[11]输入:备用参数 PCOMMIT in varchar2 default 'N' ,--[12]输入:是否提交事务 Y:提交 N:不提交 PZXZT00 out number ,--[13]输出:执行状态 0:失败 1:成功 POUTXML out varchar2 ,--[14]输出:出参(XML) PERRMSG out varchar2 --[15]输出:错误信息 ) as -- MODIFICATION HISTORY -- Person Date Comments --zhangyc 2022.01.18 created by MZSF-20220118-004 --zhangyc 2022.01.24 接口优化(ZDBM00-->JKSXBM、ZDMC00->JKSXMC) by MZSF-20220124-004 --zhangyc 2022.02.17 INFNLX=3:调用服务接口报文'arg0'否则不加 by MZSF-20220217-005 --zhangyc 2022.03.07 优化接口card_sn:[国家医保]卡识别码=aaz501获取错误 by MZSF-20220307-005 --zhangyc 2022.03.11 aac002不是身份证判断 BM_BRXXB0.BRZJBH(SP_SF_CHECKSFZH(trim(LS_BRZJBH))=1) by MZSF-20220311-001 --zhangyc 2022.03.12 LS_certno非身份证号传 psn_cert_type:99:其他证件 by MZSF-20220312-001 --cailongquan 2022.09.21 医保凭证就诊时接口未返回有效卡号是否允许建档 by MZSF-20220829-003 --zhangyc 2023.04.20 医保凭证就诊解析请求参数2中的psn_cert_type -- --------- ---------- ------- LS_COUNT0 number(12,2); LS_CZRQ00 char(8); LS_CZSJ00 char(8); LS_INFNLX BM_TYCJBM.INFNLX%type;--:[国家医保]交易类型 1:直接调用医保DLL 3:调用服务接口 LS_QQJDBS BM_TYCJBM.QQJDBS%type;--:请求节点标识 LS_FHJDBS BM_TYCJBM.FHJDBS%type;--:返回节点标识 LS_DateTimeStr varchar2(20); --日期时间型:格式为:yyyy-MM-dd HH:mm:ss LS_DateStr varchar2(10); --日期型:格式为:yyyy-MM-dd LS_TimeStr varchar2(10); --时间型:格式为:HH:mm:ss LS_JKFSZ0 SF_YBJKMX.JKFSZ0%type;--接口发送值 LS_JKFHZ0 SF_YBJKMX.JKFHZ0%type;--接口返回值 LS_VALUE0 SF_YBJKMX.VALUE0%type;--请求报文字符串 LS_QQDATA SF_YBJKRZ.QQDATA%type;--请求报文 LS_MainJson SF_YBJKRZ.QQDATA%type;--主项Json LS_detailJson SF_YBJKRZ.QQDATA%type;--明细Json LS_inputJson SF_YBJKRZ.QQDATA%type;--input输入 LS_YBKH00 BM_BRXXB0.YBKH00%type; --医保卡号 LS_YBID00 BM_BRXXB0.YBID00%type; --医保ID LS_BRZJLX BM_BRXXB0.BRZJLX%type; --病人证件类型 LS_BRZJBH BM_BRXXB0.BRZJBH%type; --病人证件编号 LS_BRXM00 BM_BRXXB0.BRXM00%type; --病人姓名 LS_XZQH00 BM_BRXXB0.XZQH00%type; --行政区号 LS_YBKSBM BM_BRXXB0.YBKSBM%type; --医保卡识别码 LS_AAC999 BM_BRXXB0.AAC999%type; --个人管理码 LS_aaz500 SF_YBJKRZ.aaz500%type; --社会保障卡号 LS_AAC003 SF_YBJKRZ.AAC003%type; --姓名 LS_AAC002 SF_YBJKRZ.AAC002%type; --证件号码 LS_aaz501 SF_YBJKRZ.aaz501%type; --aaz501:卡识别码 LS_bke284 SF_YBJKRZ.bke284%type; --bke284:份认证类型(01:读卡02:融合码06:医保码20:医疗证) LS_card_sn SF_YBJKRZ.card_sn%type; --卡识别码, 就诊凭证类型为“03”时必填 卡识别码, 就诊凭证类型为“03”时必填 LS_mdtrt_cert_type SF_YBJKRZ.mdtrt_cert_type%type;--就诊凭证类型(01:时填写电子凭证令牌,为“02”时填写身份证号,为“03”时填写社会保障卡卡号) LS_mdtrt_cert_no varchar2(50); --就诊凭证编号, 就诊凭证类型为“01”时填写电子凭证令牌,为“02”时填写身份证号,为“03”时填写社会保障卡卡号 LS_begntime varchar2(20); --开始时间, 获取历史参保信息时传入 LS_psn_cert_type varchar2(6); --人员证件类型, 字典取值 LS_certno varchar2(50); --证件号码 LS_psn_name varchar2(50); --人员姓名 LS_JZDZPZJK BM_TYZD00.MC0000%type; --医保电子凭证没返回卡号是否允许建档 LS_MKLXMC varchar2(50); --模块类型名称 --医保凭证信息 LS_YBPZ_idType varchar2(6); --医保凭证_人员证件类型 LS_YBPZ_idNo varchar2(50); --医保凭证_证件号码 LS_YBPZ_userName varchar2(50); --医保凭证_人员姓名 LS_YBPZ_insuOrg varchar2(6); --医保凭证_行政区号 --修改医保发送明细表 cursor CUR_UPDATE_YBJKMX is select YBJKID,JKMXID,JDBM00,ZJDBM0,JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ from SF_YBJKMX where YBJKID=PYBJKID and FSLXBZ in ('1','3') order by JKMXID; --查询主项数据 cursor CUR_QUERY_Main is select YBJKID,JKMXID,JDBM00,ZJDBM0,JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ from SF_YBJKMX where YBJKID=PYBJKID and FSLXBZ in ('1','3') and CJBM00 in ('AllIn') order by JKMXID; --查询明细数据 cursor CUR_QUERY_detail is select YBJKID,JKMXID,JDBM00,ZJDBM0,JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ from SF_YBJKMX where YBJKID=PYBJKID and FSLXBZ in ('1','3') and CJBM00=PJKCJBM order by JKMXID; begin PZXZT00:=0; --输出:执行状态 0:失败 1:成功 POUTXML:=null;--输出:出参(XML) PERRMSG:=null;--输出:错误信息 LS_QQDATA:=null;--请求报文 LS_MainJson:=null;---主项Json LS_detailJson:=null;---明细Json LS_inputJson:=null;---input输入 LS_CZRQ00:=to_char(sysdate,'YYYYMMDD'); LS_CZSJ00:=to_char(sysdate,'HH24:MI:SS'); LS_DateTimeStr:=to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'); --日期时间型:格式为:yyyy-MM-dd HH:mm:ss LS_DateStr:=to_char(sysdate,'YYYY-MM-DD'); --日期型:格式为:yyyy-MM-dd LS_TimeStr:=to_char(sysdate,'HH24:MI:SS'); --时间型:格式为:HH:mm:ss LS_BRXM00 := null; LS_BRZJBH := null; LS_MKLXMC := nvl(SF_XT_GETXMLSTR('MKLXMC', PINXML0), '0'); LS_JZDZPZJK := nvl(SF_SF_TYZD00('医保新接口参数设置', 'SF_YBDZPZSFJZJD'), '1'); --:[国家医保]交易类型 1:直接调用医保DLL 3:调用服务接口 LS_INFNLX:= substrb(SF_XT_GETXMLSTR('INFNLX',PINXML0),1,2); if LS_INFNLX is null then LS_INFNLX:= substrb(SF_XT_GETXMLSTR('INFNLX',POTHER0),1,2); end if; --:请求节点标识 LS_QQJDBS:= substrb(SF_XT_GETXMLSTR('QQJDBS',PINXML0),1,30); if LS_QQJDBS is null then LS_QQJDBS:= substrb(SF_XT_GETXMLSTR('QQJDBS',POTHER0),1,2); end if; --:返回节点标识 LS_FHJDBS:= substrb(SF_XT_GETXMLSTR('FHJDBS',PINXML0),1,30); if LS_FHJDBS is null then LS_FHJDBS:= substrb(SF_XT_GETXMLSTR('FHJDBS',POTHER0),1,2); end if; if PBRID00 > 0 then begin select A.YBKH00,A.YBID00,A.BRZJLX,A.BRZJBH,A.BRXM00,A.XZQH00,A.YBKSBM,AAC999 into LS_YBKH00,LS_YBID00,LS_BRZJLX,LS_BRZJBH,LS_BRXM00,LS_XZQH00,LS_YBKSBM,LS_AAC999 from BM_BRXXB0 A where A.BRID00=PBRID00; exception when others then PERRMSG := '未找到病人基本信息(BRID00='||PBRID00||')'; PZXZT00:=0; --执行状态 0:失败 1:成功 return; end; end if; LS_AAC002 := substrb(SF_XT_GETXMLSTR('aac002',PINXML0),1,50);--证件号码(社会保障号) if LS_AAC002 is null then LS_AAC002 := substrb(SF_XT_GETXMLSTR('brzjbh',PINXML0),1,50);--证件号码(社会保障号) end if; LS_AAC003 := substrb(SF_XT_GETXMLSTR('aac003',PINXML0),1,50);--病人姓名 if LS_AAC003 is null then LS_AAC003 := substrb(SF_XT_GETXMLSTR('brxm00',PINXML0),1,50);--病人姓名 end if; begin select mdtrt_cert_type,mdtrt_cert_no,bke284,aaz501,card_sn,aaz500,aac003,aac002 into LS_mdtrt_cert_type,LS_mdtrt_cert_no,LS_bke284,LS_aaz501,LS_card_sn,LS_aaz500,LS_aac003,LS_aac002 from SF_YBJKRZ where YBJKID=PYBJKID; exception when others then LS_mdtrt_cert_type:=null;--就诊凭证类型 LS_mdtrt_cert_no := ''; LS_aaz501:=null; LS_card_sn:=null; LS_aaz500:=null; --社会保障卡号 LS_AAC003:=null; --姓名 LS_AAC002:=null; --证件号码 end; if LS_mdtrt_cert_no is null then LS_mdtrt_cert_no := substrb(SF_XT_GETXMLSTR('mdtrt_cert_no',PINXML0),1,50); --3.mdtrt_cert_no: 就诊凭证编号 end if; LS_begntime := substrb(SF_XT_GETXMLSTR('begntime',PINXML0),1,20); --开始时间 if LS_begntime is null then LS_begntime := to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'); end if; LS_psn_cert_type := substrb(SF_XT_GETXMLSTR('psn_cert_type',PINXML0),1,20); --psn_cert_type:人员证件类型 if LS_psn_cert_type is null then LS_psn_cert_type := substrb(SF_XT_GETXMLSTR('psn_cert_type',POTHER0),1,20); --psn_cert_type:人员证件类型 end if; --certno 证件号码 LS_certno := substrb(SF_XT_GETXMLSTR('certno',PINXML0),1,50); if LS_certno is null then LS_certno := substrb(SF_XT_GETXMLSTR('certno',POTHER0),1,50); end if; --psn_name 人员姓名 LS_psn_name := substrb(SF_XT_GETXMLSTR('psn_name',PINXML0),1,50); if LS_psn_name is null then LS_psn_name := substrb(SF_XT_GETXMLSTR('psn_name',POTHER0),1,50); end if; if LS_psn_cert_type is null and LS_BRZJLX is not null then LS_psn_cert_type := substrb(SF_XT_GETYBSXZD('psn_cert_type',LS_BRZJLX,'1','1'),1,6); --人员证件类型 end if; if trim(LS_AAC002) is null then if LS_BRZJBH is not null and SP_SF_CHECKSFZH(LS_BRZJBH) = 1 then LS_AAC002 := LS_BRZJBH; else LS_BRZJBH := LS_YBID00; end if; end if; if LS_AAC002 is not null then LS_certno := substrb(LS_AAC002,1,50); --证件号码 end if; if trim(LS_AAC003) is null then LS_AAC003 := LS_BRXM00; end if; if LS_AAC003 is not null then LS_psn_name := substrb(LS_AAC003,1,50); --人员姓名 end if; --卡识别码 LS_card_sn:=substrb(nvl(LS_card_sn,LS_aaz501),1,50); --bke284:份认证类型(01:读卡02:融合码06:医保码20:医疗证) if LS_bke284='20'then LS_psn_cert_type:='01'; --人员证件类型 90:社会保障卡 01:身份证 elsif LS_bke284='01'then --bke284:份认证类型(01:读卡02:融合码06:医保码20:医疗证) LS_psn_cert_type:='01'; --人员证件类型 90:社会保障卡 01:身份证 elsif LS_bke284='06'then LS_psn_cert_type:='01'; --人员证件类型 90:社会保障卡 01:身份证 end if; if LS_mdtrt_cert_type='03' then --就诊凭证类型(01:时填写电子凭证令牌,为“02”时填写身份证号,为“03”时填写社会保障卡卡号) LS_card_sn:=LS_card_sn; else LS_card_sn:=null; end if; --非身份证号 if SP_SF_CHECKSFZH(trim(LS_certno))<>1 then LS_psn_cert_type:='99'; --人员证件类型 90:社会保障卡 01:身份证 99:其他证件 end if; --2023.04.20--医保电子凭证处理---begin-- /* --医保凭证返回报文: {"code":"0","data":{"aac002":"H10147178","aaz500":"DK1279450","actCardNo":"1","bab520":"350299","bkz543":"4243825228398849254401350000","businessType":"01101","certfCodg":"3502991177H0418","ecIndexNo":"232EA7A88D3961BCC0772488AE616349382B4E91F87CF8FE4BE5D0A2A32450EA","ecToken":"350000ecuevrn95hje0a83460a00009cd74835","id0000":"35000004000000000H1014717801","idNo":"H10147178","idType":"04","idcode":"4243825228398849254401350000","identity_token":"HtMKdwHko/m4M//QyLaUp8EBtJX3hsSS5f7frnBVpuZaIKJN+QtosxHz1utrkbjd/7ih0zzk45w0QA2tQPYArdfS8n1kys/Jmlkyqu9vcLsUrt7GCyW+CWi+NeUtW6TAa4BbUF9V6eb/APbUsU/w3Dip2kVK7zmHhTADsw1qYIuQBGqU/5aGyQxXxHA2pVhEUxQwGffysTrpF8jP4iOiPhenT0D+6JOe//oVS1F/atH19oNKPgZ/3Iw+QjY5DDbaj0SMFhMrMm41Ge5na8w+hI1HF3W/CT3x1kGKq25/KVEPNN2w4O0PRLTOis/N6DUuTdz7tQhFNpUKbFRmN0m+m6cWKBqw7g+A4bIRh3Y5UwNv1hrd08Ubfl4k5gZ7ktve5/W/Kf0mUVi8UBFGErBcZYXuu68Gd3lqH+ivakktUjs=","insuOrg":"350299","officeId":"5000","officeName":"治未病科","operatorId":"537","operatorName":"机房21","orgId":"3505990102","userName":"张佳鸿"},"extra":"","infno":null,"message":"success","orgId":"3505990102","transType":"ec.query"} --请求参数2: 350000ecuevrn95hje0a83460a00009cd7483504H10147178张佳鸿DK1279450H10147178350299 */ if LS_bke284='06' then --医保电子凭证 LS_YBPZ_idType := substrb(SF_XT_GETXMLSTR('idType',POTHER0),1,6); --医保凭证_人员证件类型 idType=psn_cert_type if LS_YBPZ_idType is null then LS_YBPZ_idType := substrb(SF_XT_GETXMLSTR('psn_cert_type',POTHER0),1,6); end if; LS_YBPZ_idNo := substrb(SF_XT_GETXMLSTR('idNo',POTHER0),1,50); --医保凭证_证件号码 idNo=certno if LS_YBPZ_idNo is null then LS_YBPZ_idNo := substrb(SF_XT_GETXMLSTR('certno',POTHER0),1,50); end if; LS_YBPZ_userName := substrb(SF_XT_GETXMLSTR('userName',POTHER0),1,50); --医保凭证_人员姓名 userName=psn_name if LS_YBPZ_userName is null then LS_YBPZ_userName := substrb(SF_XT_GETXMLSTR('psn_name',POTHER0),1,50); end if; LS_YBPZ_insuOrg := substrb(SF_XT_GETXMLSTR('insuOrg',POTHER0),1,60); --医保凭证_行政区号 insuOrg=insuplc_admdvs if LS_YBPZ_insuOrg is null then LS_YBPZ_insuOrg := substrb(SF_XT_GETXMLSTR('insuplc_admdvs',POTHER0),1,6); end if; if LS_YBPZ_idType is not null then LS_psn_cert_type :=LS_YBPZ_idType; --人员证件类型 end if; if LS_YBPZ_idNo is not null then LS_certno :=LS_YBPZ_idNo; --证件号码 end if; if LS_YBPZ_userName is not null then LS_psn_name :=LS_YBPZ_userName; --人员姓名 end if; end if; --2023.04.20--医保电子凭证处理---begin-- --插入表SF_YBJKMX insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00, JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ,ZDLX00,BZ0000,CJBM00) select PYBJKID,A.ZDNBID,A.JDBM00,null,substrb(nvl(A.JKDZBM,A.JKSXBM),1,50),substrb(nvl(A.JKDZMC,JKSXMC),1,100), A.JKSXBM,A.JKSXMC,null,null,substrb(a.JKFSLX,1,1),substrb(a.ZDTYPE,1,1),a.BZ0000,A.CJBM00 from BM_TYCJZD A where A.CJBM00=PJKCJBM and nvl(A.SFYX00,'1')='1' and A.JKFSLX in ('1','2','3'); --修改:医保发送变量赋值 for C_YBFS in CUR_UPDATE_YBJKMX loop LS_JKFSZ0:=null;--接口发送值 LS_JKFHZ0:=null;--接口返回值 LS_VALUE0:=null;--请求报文字符串 if C_YBFS.JKSXBM='mdtrt_cert_type' then --1.mdtrt_cert_type 就诊凭证类型 LS_JKFSZ0:=substrb(LS_mdtrt_cert_type,1,250); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='mdtrt_cert_no' then --2.mdtrt_cert_no 就诊凭证编号 LS_JKFSZ0:=substrb(LS_mdtrt_cert_no,1,250); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='card_sn' then --3.card_sn 卡识别码 LS_JKFSZ0:=substrb(LS_card_sn,1,250); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='begntime' then --4.begntime 开始时间 LS_JKFSZ0:=substrb(LS_begntime,1,250); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='psn_cert_type' then --5.psn_cert_type 人员证件类型 LS_JKFSZ0:=substrb(LS_psn_cert_type,1,250); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='certno' then --6.certno 证件号码 LS_JKFSZ0:=substrb(LS_certno,1,250); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='psn_name' then --7.psn_name 人员姓名 LS_JKFSZ0:=substrb(LS_psn_name,1,250); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; end if; end loop; --查询主项数据 for C_Main in CUR_QUERY_Main loop LS_MainJson := SF_XT_GETJSONSTR(LS_MainJson,C_Main.JKSXBM,C_Main.JKFSZ0,'0'); end loop; --查询明细数据 for C_detail in CUR_QUERY_detail loop LS_detailJson := SF_XT_GETJSONSTR(LS_detailJson,C_detail.JKSXBM,C_detail.JKFSZ0,'0'); end loop; if LS_MainJson is null then PZXZT00:=0; PERRMSG:='国家医保接口(基本信息获取)主项报文不能为空!'; return; end if; if LS_detailJson is null then PZXZT00:=0; PERRMSG:='国家医保接口(基本信息获取)明细报文不能为空!'; return; end if; --明细项加标题 LS_detailJson := SF_XT_GETJSONSTR(null,'data',LS_detailJson,'1'); --input输入 LS_inputJson := SF_XT_GETJSONSTR(LS_inputJson,'input',LS_detailJson,'1'); --拼接整个报文 --INFNLX:[国家医保]交易类型 1:直接调用医保DLL 3:调用服务接口 if LS_INFNLX='3' then LS_QQDATA := SF_XT_GETJSONSTR(LS_QQDATA,'arg0',LS_MainJson||','||LS_inputJson,'1'); else LS_QQDATA :=LS_MainJson||','||LS_inputJson; end if; LS_QQDATA:='{'||LS_QQDATA||'}'; --修改请求报文 update SF_YBJKRZ set QQDATA=LS_QQDATA ,--qqdata:请求报文 aaz500=substrb(nvl(LS_aaz500,aaz500),1,30) ,--aaz500:社会保障卡号 aac002=substrb(nvl(LS_aac002,aac002),1,30) ,--aac002:证件号码(社会保障号) aac003=substrb(nvl(LS_aac003,aac003),1,50) ,--aac003:姓名 aac999=substrb(nvl(LS_aac999,aac999),1,30) ,--aac999:个人管理码 aaz501=substrb(nvl(LS_aaz501,aaz501),1,50) ,--aaz501:卡识别码 card_sn=substrb(nvl(LS_card_sn,card_sn),1,50) ,--card_sn:[国家医保]卡识别码=aaz501 psn_name=substrb(nvl(LS_psn_name,psn_name),1,50) ,--psn_name:[国家医保]人员姓名=aac003 psn_cert_type=substrb(nvl(LS_psn_cert_type,psn_cert_type),1,10) ,--psn_cert_type:[国家医保]人员证件类型=aac058 certno=substrb(nvl(LS_certno,certno),1,50) --certno:[国家医保]证件号码=aac002 where YBJKID=PYBJKID; if LS_JZDZPZJK = '0' and (Lengthb(LS_aaz500) not in (9) or LS_aaz500 is null) and LS_bke284 in ('06') and LS_MKLXMC = '门诊建档' then PZXZT00 := 0; PERRMSG := '国家医保接口(基本信息获取)未返回有效社保卡号,无法建档!'; return; end if; if PCOMMIT='Y' then commit; end if; PZXZT00:=1; --输出:执行状态 0:失败 1:成功 PERRMSG:=null; --输出:错误信息 exception when no_data_found then PZXZT00:=0; PERRMSG:=substrb('门诊医保接口交互生成失败(基本信息获取)!原因:'||sqlerrm,1,200); rollback; when others then PZXZT00:=0; PERRMSG:=substrb('门诊医保接口交互生成失败(基本信息获取)!原因:'||sqlerrm,1,200); rollback; end; / show error; --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%